package grafica.robots;

import grafica.*;
/**
 * Clase BalaEntity: modela los disparos gráficamente que se producen en el juego. 
 * @author Amorosi, Javier (94528)
 * @author Antiman, Nehuen (102440)
 */
public class BalaEntity extends Entity {

	private boolean used;
	
	/**
	 * Constructor de la clase BalaEntity.
	 * @param _game el juego donde se encuentra la entidad. 
	 * @param ref referencia a la representacion gráfica de la entidad.
	 * @param f posición en filas de la entidad.
	 * @param c posición en columnas de la entidad.
	 */
	public BalaEntity(ControlGraficos _game,String ref,int f,int c) {
		super(_game, ref,f,c);
		used=false;
	}

	/**
	 *Se le requiere a la bala que se mueva.
	 *Cuando la bala se ha ido de la pantalla esta se remueve del juego por si sola. 
	 * 
	 * @param delta el tiempo que ha transcurrido desde el ultimo movimiento. 
	 */
	public void move(long delta) {
		super.move(delta);		
		if (y < -100 || y>700 || x<-100 || x>900) {
			game.remove(this);
		}
	}
	
	/**
	 * Método que le notifica a la bala que ha colisionado con otra entidad.
	 * en caso de hacerlo esta bala se remueve del juego. 
	 * @param other la otra entidad con la que la bala ha colisionado. 
	 */
	public void collidedWith(Entity other) {
		if (!used) {
			game.remove(this);
			used=true;
		}
	}
}
